import { fetchUserInfoAPI } from '@/apis/fetchUserInfo'

export const useUserInfoStore = defineStore(
  'userInfo',
  () => {
    const userInfo = ref<UserInfo | null>(null)

    const setUserInfo = (newVal: UserInfo | null) => {
      userInfo.value = newVal
    }

    const update = async () => {
      if (userInfo.value?.token) {
        const res = await fetchUserInfoAPI(userInfo.value.token)
        if (res.data?.code === 1)
          setUserInfo(res.data.data)
      }
    }

    const $reset = () => setUserInfo(null)

    return { userInfo, setUserInfo, update, $reset }
  },
  {
    persist: { enabled: true },
  },
)
